package cn.ingrun.utils.redisCache.server;

public interface RedisCacheServer {

    /**
     * 获取 redisKey
     * date 2020/9/28 14:10
     * @author ingrun
     * @param methodName 方法名
     * @param parameterNames 方法参数列表
     * @param parameterValue  方法值列表
     * @return java.lang.String
     */
    public String getRedisCacheKey(String methodName, String[] parameterNames, Object[] parameterValue);

    public boolean delCache(String methodName, String[] parameterNames, Object[] parameterValue);

    public boolean delCache(String redisKey);

    public void addCache(String methodName, String[] parameterNames, Object[] parameterValue, Object o, long time);

    /**
     *
     * date 2020/9/29 14:55
     * @author ingrun
     * @param redisKey 缓存key
     * @param o 数据对象
     * @param time 缓存持续时间
     *
     */
    public void addCache(String redisKey,  Object o, long time);

    public String getCache(String methodName, String[] parameterNames, Object[] parameterValue);

    public String getCache(String redisKey);

    public <T> T getCache(String methodName, String[] parameterNames, Object[] parameterValue, Class<T> t);

    public Object getCache(String redisKey, Class<?> t);
}
